<?php

namespace app\admin\logic\zhxy\task;

/**
 * 任务
 */
class Task
{
    const DATE_F = 'Y-m-d H:i:s';

    // 进行中
    const TASK_STATUS_RUN = 0;

    // 驳回
    const TASK_STATUS_REJECT = 2;

    // 完成
    const TASK_STATUS_OK = 3;

    // 撤销
    const TASK_STATUS_RECALL = 4;

    /**
     * 实例状态
     *
     */
    const TASK_STATUS_ENMU = [
        self::TASK_STATUS_RUN    => '进行中',
        self::TASK_STATUS_REJECT    => '驳回',
        self::TASK_STATUS_OK     => '完成',
        self::TASK_STATUS_RECALL => '撤销'
    ];


    /**
     * 事项 id
     *
     * @var int $app_id
     */
    public $app_id;
    /**
     * 实例id，实例的唯一标识，即用户的一条申请id
     *
     * @var int $inst_id
     */
    public $inst_id;

    /**
     * 任务 id，task 的唯一标识
     *
     * @var  int
     */
    public $task_id;

    /**
     * 任务节点 id
     *
     * @var
     */
    public $node_id;


    /**
     * 实例发起者工号
     *
     * @var string
     */
    public $creator;

    /**
     * 实例创建时间，YYYY-MM-DD HH:ii:ss
     *
     * @var string
     */
    public $created;

    /**
     * 实例完成时间，YYYY-MM-DD HH:ii:ss，实例未结束时没有该数据
     *
     * @var string
     */
    public $finished = '';

    /**
     * 进度 0-100，示例完成进度
     *
     * @var number
     */
    public $percent;

    /**
     * 实例状态，0 进行中，1 终止，2 完成，4 撤销
     *
     * @var int
     */
    public $status;


    /**
     * 节点名称
     *
     * @var string
     */
    public $node_name = '';


    /**
     * 任务进行中 pc 端审批地址
     *
     * @var
     */
    public $form_url = '';

    /**
     * 任务进行中移动端审批地址
     *
     * @var string
     */
    public $form_mobile_url = '';


    /**
     * 任务已完成 pc 端查看地址
     *
     * @var string
     */
    public $form_url_view;

    /**
     * 任务已完成移动端查看地址
     *
     * @var string
     */
    public $form_mobile_url_view;

    /**
     * 应用id，每个第三方系统仅有一个，由任务中心提供
     *
     * @var int
     */
    public $thirdparty_id;

    /**
     * 流程图查看地址，没有传空字符串
     *
     * @var
     */
    public $process_pic_url = '';

    /**
     * 任务拥有人工号列表
     *
     * @var string[]
     */
    public $number = [];

    /**
     * 需要转化的id列表，['inst_id','task_id']，此字段要和task_data中传的一致，例如应传字段'inst_id'，而不是传inst_id的值
     *
     * @var string[]
     */
    public $conversion_column = [];


    public function toArray()
    {
        return get_object_vars($this);
    }

}